# Generated from ASLIntrinsicLexer.g4 by ANTLR 4.13.2
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
    from typing import TextIO
else:
    from typing.io import TextIO


def serializedATN():
    return [
        4,0,34,412,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
        2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
        13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,
        19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,
        26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,
        32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,
        39,7,39,2,40,7,40,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,
        3,3,3,96,8,3,1,3,1,3,3,3,100,8,3,1,3,3,3,103,8,3,5,3,105,8,3,10,
        3,12,3,108,9,3,1,4,1,4,1,4,5,4,113,8,4,10,4,12,4,116,9,4,1,4,1,4,
        1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,10,1,10,1,10,
        1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,
        1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,
        1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,
        1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,
        1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,
        1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,
        1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,
        1,19,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,
        1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,
        1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,
        1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,
        1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,
        1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,
        1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,
        1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,
        1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,31,1,31,
        1,31,5,31,344,8,31,10,31,12,31,347,9,31,1,31,1,31,1,32,1,32,1,32,
        3,32,354,8,32,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,35,1,35,
        1,36,3,36,367,8,36,1,36,1,36,1,36,5,36,372,8,36,10,36,12,36,375,
        9,36,3,36,377,8,36,1,37,3,37,380,8,37,1,37,1,37,1,37,4,37,385,8,
        37,11,37,12,37,386,3,37,389,8,37,1,37,3,37,392,8,37,1,38,1,38,3,
        38,396,8,38,1,38,1,38,1,39,1,39,4,39,402,8,39,11,39,12,39,403,1,
        40,4,40,407,8,40,11,40,12,40,408,1,40,1,40,1,345,0,41,1,1,3,2,5,
        3,7,0,9,0,11,4,13,5,15,6,17,7,19,8,21,9,23,10,25,11,27,12,29,13,
        31,14,33,15,35,16,37,17,39,18,41,19,43,20,45,21,47,22,49,23,51,24,
        53,25,55,26,57,27,59,28,61,29,63,30,65,0,67,0,69,0,71,0,73,31,75,
        32,77,0,79,33,81,34,1,0,9,1,0,93,93,3,0,48,57,65,70,97,102,3,0,0,
        31,39,39,92,92,1,0,49,57,1,0,48,57,2,0,69,69,101,101,2,0,43,43,45,
        45,4,0,48,57,65,90,95,95,97,122,2,0,9,10,32,32,424,0,1,1,0,0,0,0,
        3,1,0,0,0,0,5,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,
        1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,
        1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,
        1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,
        1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,
        1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,73,1,0,0,0,0,75,
        1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,1,83,1,0,0,0,3,87,1,0,0,0,5,90,
        1,0,0,0,7,95,1,0,0,0,9,109,1,0,0,0,11,119,1,0,0,0,13,121,1,0,0,0,
        15,123,1,0,0,0,17,125,1,0,0,0,19,127,1,0,0,0,21,129,1,0,0,0,23,134,
        1,0,0,0,25,140,1,0,0,0,27,147,1,0,0,0,29,154,1,0,0,0,31,167,1,0,
        0,0,33,180,1,0,0,0,35,186,1,0,0,0,37,201,1,0,0,0,39,215,1,0,0,0,
        41,226,1,0,0,0,43,239,1,0,0,0,45,251,1,0,0,0,47,263,1,0,0,0,49,276,
        1,0,0,0,51,289,1,0,0,0,53,294,1,0,0,0,55,304,1,0,0,0,57,315,1,0,
        0,0,59,323,1,0,0,0,61,335,1,0,0,0,63,340,1,0,0,0,65,350,1,0,0,0,
        67,355,1,0,0,0,69,361,1,0,0,0,71,363,1,0,0,0,73,366,1,0,0,0,75,379,
        1,0,0,0,77,393,1,0,0,0,79,401,1,0,0,0,81,406,1,0,0,0,83,84,3,11,
        5,0,84,85,3,11,5,0,85,86,3,7,3,0,86,2,1,0,0,0,87,88,3,11,5,0,88,
        89,3,7,3,0,89,4,1,0,0,0,90,91,3,11,5,0,91,92,3,79,39,0,92,93,3,7,
        3,0,93,6,1,0,0,0,94,96,3,9,4,0,95,94,1,0,0,0,95,96,1,0,0,0,96,106,
        1,0,0,0,97,99,3,19,9,0,98,100,3,79,39,0,99,98,1,0,0,0,99,100,1,0,
        0,0,100,102,1,0,0,0,101,103,3,9,4,0,102,101,1,0,0,0,102,103,1,0,
        0,0,103,105,1,0,0,0,104,97,1,0,0,0,105,108,1,0,0,0,106,104,1,0,0,
        0,106,107,1,0,0,0,107,8,1,0,0,0,108,106,1,0,0,0,109,114,5,91,0,0,
        110,113,3,9,4,0,111,113,8,0,0,0,112,110,1,0,0,0,112,111,1,0,0,0,
        113,116,1,0,0,0,114,112,1,0,0,0,114,115,1,0,0,0,115,117,1,0,0,0,
        116,114,1,0,0,0,117,118,5,93,0,0,118,10,1,0,0,0,119,120,5,36,0,0,
        120,12,1,0,0,0,121,122,5,40,0,0,122,14,1,0,0,0,123,124,5,41,0,0,
        124,16,1,0,0,0,125,126,5,44,0,0,126,18,1,0,0,0,127,128,5,46,0,0,
        128,20,1,0,0,0,129,130,5,116,0,0,130,131,5,114,0,0,131,132,5,117,
        0,0,132,133,5,101,0,0,133,22,1,0,0,0,134,135,5,102,0,0,135,136,5,
        97,0,0,136,137,5,108,0,0,137,138,5,115,0,0,138,139,5,101,0,0,139,
        24,1,0,0,0,140,141,5,83,0,0,141,142,5,116,0,0,142,143,5,97,0,0,143,
        144,5,116,0,0,144,145,5,101,0,0,145,146,5,115,0,0,146,26,1,0,0,0,
        147,148,5,70,0,0,148,149,5,111,0,0,149,150,5,114,0,0,150,151,5,109,
        0,0,151,152,5,97,0,0,152,153,5,116,0,0,153,28,1,0,0,0,154,155,5,
        83,0,0,155,156,5,116,0,0,156,157,5,114,0,0,157,158,5,105,0,0,158,
        159,5,110,0,0,159,160,5,103,0,0,160,161,5,84,0,0,161,162,5,111,0,
        0,162,163,5,74,0,0,163,164,5,115,0,0,164,165,5,111,0,0,165,166,5,
        110,0,0,166,30,1,0,0,0,167,168,5,74,0,0,168,169,5,115,0,0,169,170,
        5,111,0,0,170,171,5,110,0,0,171,172,5,84,0,0,172,173,5,111,0,0,173,
        174,5,83,0,0,174,175,5,116,0,0,175,176,5,114,0,0,176,177,5,105,0,
        0,177,178,5,110,0,0,178,179,5,103,0,0,179,32,1,0,0,0,180,181,5,65,
        0,0,181,182,5,114,0,0,182,183,5,114,0,0,183,184,5,97,0,0,184,185,
        5,121,0,0,185,34,1,0,0,0,186,187,5,65,0,0,187,188,5,114,0,0,188,
        189,5,114,0,0,189,190,5,97,0,0,190,191,5,121,0,0,191,192,5,80,0,
        0,192,193,5,97,0,0,193,194,5,114,0,0,194,195,5,116,0,0,195,196,5,
        105,0,0,196,197,5,116,0,0,197,198,5,105,0,0,198,199,5,111,0,0,199,
        200,5,110,0,0,200,36,1,0,0,0,201,202,5,65,0,0,202,203,5,114,0,0,
        203,204,5,114,0,0,204,205,5,97,0,0,205,206,5,121,0,0,206,207,5,67,
        0,0,207,208,5,111,0,0,208,209,5,110,0,0,209,210,5,116,0,0,210,211,
        5,97,0,0,211,212,5,105,0,0,212,213,5,110,0,0,213,214,5,115,0,0,214,
        38,1,0,0,0,215,216,5,65,0,0,216,217,5,114,0,0,217,218,5,114,0,0,
        218,219,5,97,0,0,219,220,5,121,0,0,220,221,5,82,0,0,221,222,5,97,
        0,0,222,223,5,110,0,0,223,224,5,103,0,0,224,225,5,101,0,0,225,40,
        1,0,0,0,226,227,5,65,0,0,227,228,5,114,0,0,228,229,5,114,0,0,229,
        230,5,97,0,0,230,231,5,121,0,0,231,232,5,71,0,0,232,233,5,101,0,
        0,233,234,5,116,0,0,234,235,5,73,0,0,235,236,5,116,0,0,236,237,5,
        101,0,0,237,238,5,109,0,0,238,42,1,0,0,0,239,240,5,65,0,0,240,241,
        5,114,0,0,241,242,5,114,0,0,242,243,5,97,0,0,243,244,5,121,0,0,244,
        245,5,76,0,0,245,246,5,101,0,0,246,247,5,110,0,0,247,248,5,103,0,
        0,248,249,5,116,0,0,249,250,5,104,0,0,250,44,1,0,0,0,251,252,5,65,
        0,0,252,253,5,114,0,0,253,254,5,114,0,0,254,255,5,97,0,0,255,256,
        5,121,0,0,256,257,5,85,0,0,257,258,5,110,0,0,258,259,5,105,0,0,259,
        260,5,113,0,0,260,261,5,117,0,0,261,262,5,101,0,0,262,46,1,0,0,0,
        263,264,5,66,0,0,264,265,5,97,0,0,265,266,5,115,0,0,266,267,5,101,
        0,0,267,268,5,54,0,0,268,269,5,52,0,0,269,270,5,69,0,0,270,271,5,
        110,0,0,271,272,5,99,0,0,272,273,5,111,0,0,273,274,5,100,0,0,274,
        275,5,101,0,0,275,48,1,0,0,0,276,277,5,66,0,0,277,278,5,97,0,0,278,
        279,5,115,0,0,279,280,5,101,0,0,280,281,5,54,0,0,281,282,5,52,0,
        0,282,283,5,68,0,0,283,284,5,101,0,0,284,285,5,99,0,0,285,286,5,
        111,0,0,286,287,5,100,0,0,287,288,5,101,0,0,288,50,1,0,0,0,289,290,
        5,72,0,0,290,291,5,97,0,0,291,292,5,115,0,0,292,293,5,104,0,0,293,
        52,1,0,0,0,294,295,5,74,0,0,295,296,5,115,0,0,296,297,5,111,0,0,
        297,298,5,110,0,0,298,299,5,77,0,0,299,300,5,101,0,0,300,301,5,114,
        0,0,301,302,5,103,0,0,302,303,5,101,0,0,303,54,1,0,0,0,304,305,5,
        77,0,0,305,306,5,97,0,0,306,307,5,116,0,0,307,308,5,104,0,0,308,
        309,5,82,0,0,309,310,5,97,0,0,310,311,5,110,0,0,311,312,5,100,0,
        0,312,313,5,111,0,0,313,314,5,109,0,0,314,56,1,0,0,0,315,316,5,77,
        0,0,316,317,5,97,0,0,317,318,5,116,0,0,318,319,5,104,0,0,319,320,
        5,65,0,0,320,321,5,100,0,0,321,322,5,100,0,0,322,58,1,0,0,0,323,
        324,5,83,0,0,324,325,5,116,0,0,325,326,5,114,0,0,326,327,5,105,0,
        0,327,328,5,110,0,0,328,329,5,103,0,0,329,330,5,83,0,0,330,331,5,
        112,0,0,331,332,5,108,0,0,332,333,5,105,0,0,333,334,5,116,0,0,334,
        60,1,0,0,0,335,336,5,85,0,0,336,337,5,85,0,0,337,338,5,73,0,0,338,
        339,5,68,0,0,339,62,1,0,0,0,340,345,5,39,0,0,341,344,3,65,32,0,342,
        344,3,71,35,0,343,341,1,0,0,0,343,342,1,0,0,0,344,347,1,0,0,0,345,
        346,1,0,0,0,345,343,1,0,0,0,346,348,1,0,0,0,347,345,1,0,0,0,348,
        349,5,39,0,0,349,64,1,0,0,0,350,353,5,92,0,0,351,354,3,67,33,0,352,
        354,9,0,0,0,353,351,1,0,0,0,353,352,1,0,0,0,354,66,1,0,0,0,355,356,
        5,117,0,0,356,357,3,69,34,0,357,358,3,69,34,0,358,359,3,69,34,0,
        359,360,3,69,34,0,360,68,1,0,0,0,361,362,7,1,0,0,362,70,1,0,0,0,
        363,364,8,2,0,0,364,72,1,0,0,0,365,367,5,45,0,0,366,365,1,0,0,0,
        366,367,1,0,0,0,367,376,1,0,0,0,368,377,5,48,0,0,369,373,7,3,0,0,
        370,372,7,4,0,0,371,370,1,0,0,0,372,375,1,0,0,0,373,371,1,0,0,0,
        373,374,1,0,0,0,374,377,1,0,0,0,375,373,1,0,0,0,376,368,1,0,0,0,
        376,369,1,0,0,0,377,74,1,0,0,0,378,380,5,45,0,0,379,378,1,0,0,0,
        379,380,1,0,0,0,380,381,1,0,0,0,381,388,3,73,36,0,382,384,5,46,0,
        0,383,385,7,4,0,0,384,383,1,0,0,0,385,386,1,0,0,0,386,384,1,0,0,
        0,386,387,1,0,0,0,387,389,1,0,0,0,388,382,1,0,0,0,388,389,1,0,0,
        0,389,391,1,0,0,0,390,392,3,77,38,0,391,390,1,0,0,0,391,392,1,0,
        0,0,392,76,1,0,0,0,393,395,7,5,0,0,394,396,7,6,0,0,395,394,1,0,0,
        0,395,396,1,0,0,0,396,397,1,0,0,0,397,398,3,73,36,0,398,78,1,0,0,
        0,399,402,7,7,0,0,400,402,3,67,33,0,401,399,1,0,0,0,401,400,1,0,
        0,0,402,403,1,0,0,0,403,401,1,0,0,0,403,404,1,0,0,0,404,80,1,0,0,
        0,405,407,7,8,0,0,406,405,1,0,0,0,407,408,1,0,0,0,408,406,1,0,0,
        0,408,409,1,0,0,0,409,410,1,0,0,0,410,411,6,40,0,0,411,82,1,0,0,
        0,21,0,95,99,102,106,112,114,343,345,353,366,373,376,379,386,388,
        391,395,401,403,408,1,6,0,0
    ]

class ASLIntrinsicLexer(Lexer):

    atn = ATNDeserializer().deserialize(serializedATN())

    decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]

    CONTEXT_PATH_STRING = 1
    JSON_PATH_STRING = 2
    STRING_VARIABLE = 3
    DOLLAR = 4
    LPAREN = 5
    RPAREN = 6
    COMMA = 7
    DOT = 8
    TRUE = 9
    FALSE = 10
    States = 11
    Format = 12
    StringToJson = 13
    JsonToString = 14
    Array = 15
    ArrayPartition = 16
    ArrayContains = 17
    ArrayRange = 18
    ArrayGetItem = 19
    ArrayLength = 20
    ArrayUnique = 21
    Base64Encode = 22
    Base64Decode = 23
    Hash = 24
    JsonMerge = 25
    MathRandom = 26
    MathAdd = 27
    StringSplit = 28
    UUID = 29
    STRING = 30
    INT = 31
    NUMBER = 32
    IDENTIFIER = 33
    WS = 34

    channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]

    modeNames = [ "DEFAULT_MODE" ]

    literalNames = [ "<INVALID>",
            "'$'", "'('", "')'", "','", "'.'", "'true'", "'false'", "'States'", 
            "'Format'", "'StringToJson'", "'JsonToString'", "'Array'", "'ArrayPartition'", 
            "'ArrayContains'", "'ArrayRange'", "'ArrayGetItem'", "'ArrayLength'", 
            "'ArrayUnique'", "'Base64Encode'", "'Base64Decode'", "'Hash'", 
            "'JsonMerge'", "'MathRandom'", "'MathAdd'", "'StringSplit'", 
            "'UUID'" ]

    symbolicNames = [ "<INVALID>",
            "CONTEXT_PATH_STRING", "JSON_PATH_STRING", "STRING_VARIABLE", 
            "DOLLAR", "LPAREN", "RPAREN", "COMMA", "DOT", "TRUE", "FALSE", 
            "States", "Format", "StringToJson", "JsonToString", "Array", 
            "ArrayPartition", "ArrayContains", "ArrayRange", "ArrayGetItem", 
            "ArrayLength", "ArrayUnique", "Base64Encode", "Base64Decode", 
            "Hash", "JsonMerge", "MathRandom", "MathAdd", "StringSplit", 
            "UUID", "STRING", "INT", "NUMBER", "IDENTIFIER", "WS" ]

    ruleNames = [ "CONTEXT_PATH_STRING", "JSON_PATH_STRING", "STRING_VARIABLE", 
                  "JSON_PATH_BODY", "JSON_PATH_BRACK", "DOLLAR", "LPAREN", 
                  "RPAREN", "COMMA", "DOT", "TRUE", "FALSE", "States", "Format", 
                  "StringToJson", "JsonToString", "Array", "ArrayPartition", 
                  "ArrayContains", "ArrayRange", "ArrayGetItem", "ArrayLength", 
                  "ArrayUnique", "Base64Encode", "Base64Decode", "Hash", 
                  "JsonMerge", "MathRandom", "MathAdd", "StringSplit", "UUID", 
                  "STRING", "ESC", "UNICODE", "HEX", "SAFECODEPOINT", "INT", 
                  "NUMBER", "EXP", "IDENTIFIER", "WS" ]

    grammarFileName = "ASLIntrinsicLexer.g4"

    def __init__(self, input=None, output:TextIO = sys.stdout):
        super().__init__(input, output)
        self.checkVersion("4.13.2")
        self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
        self._actions = None
        self._predicates = None


